package com.ruoyi.order.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 【订单】对象 order
 * 
 * @author ruoyi
 * @date 2025-07-03
 */
@Data
@ApiModel(description = "订单实体")
public class Order extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 订单id */
    @ApiModelProperty(value = "订单id", example = "订单id")
    private String orderId;

    /** 意向城市 */
    @ApiModelProperty(value = "意向城市", example = "意向城市")
    @Excel(name = "意向城市")
    private String city;

    /** 医院属性0-公立, 1-私立, 2-不限 */
    @ApiModelProperty(value = "医院属性0-公立, 1-私立, 2-不限", example = "医院属性0-公立, 1-私立, 2-不限")
    @Excel(name = "医院属性0-公立, 1-私立, 2-不限")
    private String hospitalAttributes;

    /** 医生性别 */
    @ApiModelProperty(value = "医生性别", example = "医生性别")
    @Excel(name = "医生性别")
    private String doctorGender;

    /** 病种 */
    @ApiModelProperty(value = "病种", example = "病种")
    @Excel(name = "病种")
    private Long diseaseId;

    /** 需求补充 */
    @ApiModelProperty(value = "需求补充", example = "需求补充")
    @Excel(name = "需求补充")
    private String supplement;

    /** 下单时间 */
    @ApiModelProperty(value = "下单时间", example = "下单时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "下单时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date placeOrderTime;

    /** 接单时间 */
    @ApiModelProperty(value = "接单时间", example = "接单时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "接单时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date orderTakingTime;

    /** 完成时间 */
    @ApiModelProperty(value = "完成时间", example = "完成时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "完成时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date completeTime;

    /** 订单状态, 0-已完成, 1-待接单, 2-进行中, 3-待评价, 4-已评价, 5-已取消 */
    @ApiModelProperty(value = "订单状态, 0-已完成, 1-待接单, 2-进行中, 3-待评价, 5-已取消, 6-待支付, 7-退款中", example = "订单状态, 0-已完成, 1-待接单, 2-进行中, 3-待评价, 5-已取消, 6-待支付, 7-退款中")
    @Excel(name = "订单状态, 0-已完成, 1-待接单, 2-进行中, 3-待评价, 4-已评价, 5-已取消, 6-待支付, 7-退款中")
    private String orderStatus;

    @ApiModelProperty(value = "是否评价0-已评价, 1-待评价", example = "是否评价0-已评价, 1-待评价")
    private String isEvaluate;

    /** 是否关闭会话0-否, 1-是 */
    @ApiModelProperty(value = "是否关闭会话0-否, 1-是", example = "是否关闭会话0-否, 1-是")
    @Excel(name = "是否关闭会话0-否, 1-是")
    private Integer isSession;

    /** 用户id */
    @ApiModelProperty(value = "用户id", example = "用户id")
    @Excel(name = "用户id")
    private String userId;

    /** 专家id */
    @ApiModelProperty(value = "专家id", example = "专家id")
    @Excel(name = "专家id")
    private String expertId;

    /** 总金额 */
    @ApiModelProperty(value = "总金额", example = "总金额")
    @Excel(name = "总金额")
    private BigDecimal totleAmount;

    /** 实付 */
    @ApiModelProperty(value = "实付", example = "实付")
    @Excel(name = "实付")
    private BigDecimal actualPayment;

    /** 抵扣 */
    @ApiModelProperty(value = "抵扣", example = "抵扣")
    @Excel(name = "抵扣")
    private BigDecimal deduction;

    @ApiModelProperty(value = "微信支付id", example = "微信支付id")
    private String wxPayId;

    @ApiModelProperty(value = "支付时间", example = "支付时间")
    private Date payTime;

    @ApiModelProperty(value = "是否忽略", example = "是否忽略")
    private String isIgnore;

    @ApiModelProperty(value = "支付状态", example = "支付状态")
    private String payStatus;

    // 退款时间
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date refundTime;

    // 商户退款订单号
    private String  outRefundNo;

    // 微信退款订单号
    private String weChatRefundOrderNo;


}
